Field of the Invention
The present invention relates to processing executed by an information processing apparatus such as a mobile terminal that operates as an external device for an image output apparatus, for example, a printer.
Description of the Related Art
In recent years, multi-function mobile terminals (to be referred to as mobile computers hereinafter) incorporating a camera function have explosively become widespread, and far surpass digital cameras and conventional personal computers (to be referred to as PCs hereinafter) in sales. Such mobile computer integrates a high-resolution camera whose number of pixels ranges from 8 millions to 20 millions. Such high-resolution camera contributes to effectively using a modern printer. The recent inkjet printer has a printhead with an ultra-high nozzle resolution. To effectively use the printhead, for example, when printing an image on an A4-sized printing medium, image data containing several tens of millions pixels is required. Thus, the use of the high-resolution camera leads to improvement of print quality.
Such mobile computer is basically formed from three elements, that is, hardware as the computer itself, an operating system (to be referred to as an OS hereinafter) operating on the hardware, and an application operating on the OS. By using the application, the user can use a function such as a map, mail, or browsing of a Web site on the Internet.
As examples of the form of such application operating on the mobile computer, there are mainly two application forms, that is, a native application and Web application. The features of each application form will be explained below.
The native application is developed by using a development environment and development language which are prepared for each OS. For example, the C/C++ language is used on an OS provided by company A, the Java® language is used on an OS provided by company B, and a different development language is used on an OS provided by company C. In general, the native application is compiled in advance in each development environment, and converted from a so-called high-level language understandable by a human into instruction sets such as an assembler interpretable by the CPU of the computer. Thus, the ordinary native application has an advantage that it is possible to perform an operation at high speed since the CPU directly interprets instructions.
On the other hand, the Web application indicates an application operating on a Web browser which is normally incorporated in an OS on each computer in recent years. The application is generally developed by using a language such as HTML5, CSS, or JavaScript® so that the Web browser can interpret the application. These languages are Web standard languages. Therefore, if a Web application is described using the Web standard language, it can operate in any environment where the Web browser operates.
The above-described recent mobile computer integrates a high-resolution camera. The mobile computer is carried by the user daily and also includes a memory capable of storing thousands of photos. Hence, the user can easily enjoy photo taking at a very high frequency. Image processing to, for example, apply filtering for adding monochrome/sepia-toning to a photo image obtained in this way or correct undesirable conditions such as excessive darkness or loss of color balance in a photo is a very important and indispensable function for the user. When developing an application that allows the user to easily execute such image processing without any stress in the two forms described above, the following problems arise.
A native application can execute processing at a high speed, as described above. However, since the native application needs to be developed individually in a development language that changes between OSs, the development cost and development time increase. In addition, the native application needs to be compiled in advance. For this reason, it is difficult to change the UI design of the application at the time of operation or dynamically enhance functions.
Japanese Patent Laid-Open No. 2011-233034 discloses an example of a web application form. In a web application, normally, the main body of the application described in HTML5, CSS or JavaScript® exists on a server outside the mobile computer. Since the application is dynamically downloaded from the server to the mobile computer via the Internet for utilization, the UI design and the like can dynamically be updated without being compiled in advance. However, when executing advanced complex processing, there are only two options for the web application. That is, the web application is executed on the browser by JavaScript® because of restrictions of the browser in terms of security, or executed on the server. JavaScript® is conventionally described as a script of a character string visually recognizable by a human, and can be executed by compiling the script as needed at the time of operation. For this reason, if complex processing is described using JavaScript®, the operation is slow.
If the web application is built so as to execute the processing on the server, time is needed to upload data of a photo or the like existing in the mobile computer to the server via the Internet and download the processing result. This is a large problem for the user who wishes the mobile application to perform stress-free instantaneous processing. In addition, processing on the server cannot be executed offline.
In a case where image data representing an image containing, for example, 2-3 millions of pixels undergoes image processing for displaying the image on a screen on the mobile computer, the above two problems in the web application can be minimized. However, in a case where image data is processed for printing by a printer, image data representing an image containing several tens of millions of pixels has to be handled. This results in negatively affecting user-friendly operation.
To solve the above problem, a unique software structure, so called “a hybrid application” has been recently proposed. As one example of the software structure, Cordova® is known as one of open source software. This hybrid application has a configuration in which the above-mentioned web application (script layer) and a native application (native layer) coexist. An application UI (user interface) is described by using a web standard language (e.g. HTML5, Javascript®), similar to the web application. On the other hand, an operation part of the application is described by C/C++ language, and complied in advance for each OS in each CPU. Since these two layers coexist in a single application, a bind function is provided to invoke various functions in the native layer from the script layer. This enables the application UI in the hybrid application to be described independent of an OS and invoke various functions of the native layer. Thus, the hybrid application can execute a complicated process at high speed.
As described above, the hybrid application has a configuration in which an advantage of a web application and that of a native application are combined. However, if such application structure is applied to development of an image processing and print application, the following problem arises. To explain the problem, a case where a native layer opens image data stored in a mobile terminal and displays an image based on the image data on an application UI of a script layer is considered.
In this case, the native layer holds the image data in form of RGB signals (i.e. in a binary format) in a memory, while the script layer holds the image data in form of character strings such as base64 due to restriction of the used language. In other words, these layers hold the image data in the respective formats. Thus, without data conversion, both layers cannot share the image data. Without sharing the image data, an image-processed result by the native layer at high speed cannot be previewed by the UI part of the script layer.
Further, in the print application, it is necessary for the mobile terminal to obtain information on a paper sheet available in the printer and display the information on the UI so that a user can select his/her intended paper. However, such processing is not provided in the above-mentioned Cordova®, and none of the prior arts has proposed any specific solution. Furthermore, it is necessary for a user to perform print settings such as double-sided/single-sided and monochrome/color. However, none of the prior arts has proposed any specific method as to how such information is transferred from a script layer to a native layer, and to a printer.
Thus, even though a hybrid application is applied, it is still difficult to develop a user-friendly image processing and print application.
To solve the above-described problems, the functions of a native layer may be invoked from a script layer to perform image processing at high speed. However, since the format of image data handled in the native layer and the format of image data handled in the script layer are different, for example, the script layer cannot receive image data that has undergone image processing in the native layer.